草庐IT

c++ - gcc命令行中静态库的cpptask排序

全部标签

windows - 如何在 Windows 上的 "for/F"循环命令中引用空格

我有以下for命令for/F%sin('"master\gradlew.bat"-q-pmasster')doecho%s而且我不能让它正常工作。这不是实际用例,而是一个简化得多的示例。执行"master\gradlew.bat"-q-p"master"工作正常,"master\gradlew.bat"-q-pmasster表示项目目录“mass”不存在(额外的“s”仅用于区分目的),master\gradlew.bat-q-pmasster说找不到命令“mas”。到目前为止如预期的那样,但现在我想让它在for循环中工作。for/F%sin('master\gradlew.bat-q-

c - 服务和应用程序之间的命名管道通信

所以我有一个在启动时启动的服务,我有一个应用程序放在启动文件夹中。因此客户端有时会很晚才连接到命名管道的服务器。这是我服务中的代码。hPipe=CreateNamedPipe(TEXT("\\\\.\\pipe\\popupPipe"),PIPE_ACCESS_DUPLEX|PIPE_TYPE_BYTE|PIPE_READMODE_BYTE,//FILE_FLAG_FIRST_PIPE_INSTANCEisnotneededbutforcesCreateNamedPipe(..)tofailifthepipealreadyexists...PIPE_WAIT,1,1024*16,102

c - 当我按下某个键时做些什么?

如何让程序识别我按下的某些键?理解上下文:我想用C做一个游戏(非常基本的游戏),所以为了移动物体,我想按下(WASD),我知道如何移动它,但我不知道如何当按下其中一个键时,让程序明白我想执行某个操作。例如:if(key=="A"){x++}我知道它不会像那样工作,但至少是类似的。 最佳答案 #include#include/*getch()andkbhit()*/intmain(){charc;for(;;){if(kbhit()){c=getch();if(c=='c'){printf("%c\n",c);//morecodehe

c - 为什么 `fseek(..., 0, SEEK_CUR)` 在 Windows 上失败?

我已经测试了以下C代码#includeintmain(){FILE*file=fopen("ans.txt","r+");printf("%ld",ftell(file));//prints0fgetc(file);printf("%ld",ftell(file));//prints-18printf("%d",fseek(file,0,SEEK_CUR));//-1printf("%ld",ftell(file));//prints150fclose(file);return0;}在win10上使用MinGW-W64(gcc版本7.1.0(x86_64-posix-seh-rev0,

C malloc + free 不断增加内存占用

我有一个处理大量数据(100+KB)的C应用程序。我正在使用malloc()来分配所需的内存。(char*)malloc(argLen+18+2)执行后,我使用free释放分配的内存。据我所知,由于某些原因,释放的内存没有返回给操作系统。我的问题是,当我再次运行该程序时,它并没有重新使用分配的内存,而是不断增加我的应用程序的内存使用量。编辑:对于造成的困惑,我深表歉意。该进程是一个WebSocket服务。除非有意停止,否则它不会终止。这是否意味着该进程将继续增加其内存使用量并且不会释放分配的内存,除非我手动重新启动它? 最佳答案 I

Windows 命令行 : Display fully qualified paths of and count files in a directory and its subdirectories that have a user-defined extension

我正在编写一个执行以下操作的批处理文件:采用作为目录路径的参数(%1)。然后,它要求用户输入扩展名(%ext%)。最后,批处理文件使用for循环来计算目录及其以用户提供的扩展名结尾的子目录中存在的文件数量。此外,在循环执行此操作时,它还会输出每个文件的完全限定路径的控制台行。我正在努力解决的问题是for循环。这是它的第一个版本:for/f"delims="%%fin('dir/s/b"%1"^|findstr/e"!ext!"')do(set/acount+=1setline=%%fecho!line!)如果我输入任何以句点开头的扩展名(例如:.exe),此代码就可以正常工作。它计算行

windows - 将多个命令传递给批处理文件中的 START 命令

我正在使用start从批处理文件运行命令。SETmycmd=SOME_CMDWITHARGSSTART"Demo"%mycmd%这工作正常,并且在执行mycmd的内容后生成的cmd窗口仍然存在,即使双击了批处理文件——我使用start的原因开始。但是我还想在新的cmd窗口中打印一些start的东西在运行命令之前打开。我想象我会传递启动一个回显命令,然后是我希望它运行的命令。我的第一个天真的方法如下:SETmycmd=SOME_CMDWITHARGSSTART"Demo"ECHORunningCommand...&&%mycmd%当然这不行;start打开一个只运行echo的新窗口命令,

c++ - 使用 ReadFile 对内存位置的访问无效

我有一个文件,C:\demo\Demo.txt,上面有一个简单的“Hello,world”。我想将路径作为参数传递给我的应用程序,使用CreateFile打开它,使用ReadFile读取它并在控制台上显示该行。但是,我收到错误代码998:Invalidaccesstomemorylocation.这是我的代码:intwmain(intargc,WCHAR**argv){if(argc!=2){fwprintf(stderr,L"\nWrongarguments.\n");return1;}//CreateFilefunctionvariablesHANDLEhSourceFile;LP

c - 我真的需要注释的 fclose() 命令吗?

以下程序摘自JohnsonM.Hart的Windows系统编程(第四版):#include#include#defineBUF_SIZE256intmain(intargc,char*argv[]){FILE*inFile,*outFile;size_tbytesIn,bytesOut;charrec[BUF_SIZE];if(argc!=3){printf("Syntax:scpsourcedestination.\n");return1;}inFile=fopen(argv[1],"rb");if(inFile==NULL){perror(argv[1]);return2;}out

c - Windows 上的 Ubuntu 上的 Bash : Signal handler does not work

我尝试运行一个简单的程序(下面的代码),它应该接收并处理SIGUSR1信号。它在“真正的”Linux上运行良好,但如果我在发送SIGUSR1后在WSL上运行它,它会打印Userdefinedsignal1并终止。据我所知,这意味着SIGUSR1未被程序处理,而是调用了默认处理程序。如何使WSL上的信号处理正常工作?提前致谢!源代码:#include#include#includevoidhandle_signal(intsigno){write(1,"Recievedusersignal\n",22);}intmain(){structsigactionact;act.sa_handl